User interface for entertainment systems

ABSTRACT

Methods and apparatus for searching for content to display on a digitally-tunable electronic device configured to display scheduled programming content. The method comprises receiving a search query from a user, and determining, based on the search query, an action the user wants to perform. The method further comprises determining one or more data sources to search based, at least in part, on the action the user wants to perform, and searching based, at least in part, on the search query, the one or more data sources for the content to display on the electronic device.

BACKGROUND

Some electronic devices that can be used to access entertainment content(e.g., audio and/or video content) include, or are connected to, a tunerthat enables the electronic device to receive and display scheduledprogramming content such as a television, radio, or other media program.To select a particular program for viewing on the electronic device, auser typically uses a remote control device to input the number of achannel associated with, e.g., broadcasting, the particular program.Some tunable electronic devices also allow a user to use a remotecontrol device to search for and select content using an electronicprogramming guide (EPG), which is a user interface that displaysscheduling information for current and future scheduled programmingcontent in a time-based grid format. A user typically navigates throughscheduled programming content entries displayed in an EPG by pressingbuttons on the remote control device using a five-way navigationalcommand system (left, right, up, down, and select). Once a user hashighlighted a particular program on the EPG, the corresponding contentmay be shown on the electronic device by pressing the select button onthe remote control device, after which the electronic device is tuned tothe selected channel.

SUMMARY

One embodiment is directed to a method of presenting search results onan electronic device, wherein the electronic device includes a tunerconfigured to tune the electronic device to receive scheduledprogramming. The method comprises receiving a search query; searching,with at least one processor, at least one data source based, at least inpart, on the search query; and presenting results of the search using atime-based axis and a time-independent axis.

Another embodiment is directed to an electronic device, comprising: atuner configured to tune the electronic device to receive scheduledprogramming; and at least one processor programmed to: receive a searchquery; search at least one data source based, at least in part, on thesearch query; and present results of the search using a time-based axisand a time-independent axis.

Another embodiment is directed to a computer-readable storage mediumencoded with a plurality of instructions that, when executed by at leastone computer, perform a method, comprising: receiving a search query;searching at least one data source based, at least in part, on thesearch query; and presenting results of the search using a time-basedaxis and a time-independent axis.

Another embodiment is directed to a method of presenting search resultson a visual user interface for a digitally-tunable electronic deviceconfigured to display scheduled programming content, the methodcomprising: receiving a search query; searching based, at least in part,on the search query, at least one scheduled programming content datasource and at least one bundled service content data source; andpresenting results of the search on the user interface, wherein theresults of the search combine at least one first result corresponding toscheduled programming content and at least one second resultcorresponding to bundled service content.

Another embodiment is directed to an electronic device configured todisplay scheduled programming content, the electronic device comprisingat least one processor programmed to: receive a search query; searchbased, at least in part, on the search query, at least one scheduledprogramming content data source and at least one bundled service contentdata source; and present results of the search on a user interface,wherein the results of the search combine at least one first resultcorresponding to scheduled programming content and at least one secondresult corresponding to bundled service content.

Another embodiment is directed to a computer-readable storage mediumencoded with a plurality of instructions that, when executed by at leastone computer, perform a method, comprising: receiving a search query;searching based, at least in part, on the search query, at least onescheduled programming content data source and at least one bundledservice content data source; and presenting results of the search on auser interface, wherein the results of the search combine at least onefirst result corresponding to scheduled programming content and at leastone second result corresponding to bundled service content.

Another embodiment is directed to a method of providing a user interfacefor a digitally-tunable electronic device configured to displayscheduled programming content, the method comprising: displaying, on theuser interface, a plurality of content-independent tags, the pluralityof content-independent tags comprising a first content-independent tagidentifying a first content unit returned from a search; and in responseto receiving first input corresponding to the first content-independenttag, performing at least one action related to the first content unit.

Another embodiment is directed to an electronic device comprising atleast one processor programmed to: display, on a user interfacepresented on the electronic device, a plurality of content-independenttags, the plurality of content-independent tags comprising a firstcontent-independent tag identifying a first content unit returned from asearch; and in response to receiving first input corresponding to thefirst content-independent tag, perform at least one action related tothe first content unit.

Another embodiment is directed to a computer-readable storage mediumencoded with a plurality of instructions that, when executed by at leastone computer, perform a method, comprising: displaying, on a userinterface, a plurality of content-independent tags, the plurality ofcontent-independent tags comprising a first content-independent tagidentifying a first content unit returned from a search; and in responseto receiving first input corresponding to the first content-independenttag, performing at least one action related to the first content unit.

Another embodiment is directed to a digitally-tunable electronic devicecomprising: at least one processor programmed to: provide a userinterface that enables the electronic device to receive a search queryregardless of which of a plurality of screens is displayed on the userinterface when the search query is received.

Another embodiment is directed to a computer-implemented methodcomprising: providing a user interface that enables an electronic deviceto receive a search query regardless of which of a plurality of screensis displayed on the user interface when the search query is received.

Another embodiment is directed to a computer-readable storage mediumencoded with a plurality of instructions that, when executed by at leastone computer, perform a method, comprising: providing a user interfacethat enables an electronic device to receive a search query regardlessof which of a plurality of screens is displayed on the user interfacewhen the search query is received.

Another embodiment is directed to a digitally-tunable electronic devicecomprising: at least one processor programmed to: receive first input;entering a listening mode in response to recognizing the first input;determine whether second input is received during a particular amount oftime while the electronic device is in the listening mode; and exit thelistening mode in response to determining that second input is notreceived during the particular amount of time.

Another embodiment is directed to a computer-implemented methodcomprising: receiving first input; causing an electronic device to entera listening mode in response to recognizing the first input; determiningwhether second input is received during a particular amount of timewhile the electronic device is in the listening mode; and exiting thelistening mode in response to determining that second input is notreceived during the particular amount of time.

Another embodiment is directed to a computer-readable storage mediumencoded with a plurality of instructions that, when executed by at leastone computer, perform a method, comprising: receiving first input;causing an electronic device to enter a listening mode in response torecognizing the first input; determining whether second input isreceived during a particular amount of time while the electronic deviceis in the listening mode; and exiting the listening mode in response todetermining that second input is not received during the particularamount of time.

Another embodiment is directed to a method of searching for content todisplay on a digitally-tunable electronic device configured to displayscheduled programming content, the method comprising: receiving a searchquery from a user; determining, based on the search query, an action theuser wants to perform; determining one or more data sources to searchbased, at least in part, on the action the user wants to perform; andsearching based, at least in part, on the search query, the one or moredata sources for the content to display on the electronic device.

Another embodiment is directed to an electronic device comprising atleast one processor programmed to: receive a search query from a user;determine, based on the search query, an action the user wants toperform; determine one or more data sources to search based, at least inpart, on the action the user wants to perform; and search based, atleast in part, on the search query, the one or more data sources for thecontent to display on the electronic device.

Another embodiment is directed to a computer-readable storage mediumencoded with a plurality of instructions that, when executed by at leastone computer, perform a method, comprising: receiving a search queryfrom a user; determining, based on the search query, an action the userwants to perform; determining one or more data sources to search based,at least in part, on the action the user wants to perform; and searchingbased, at least in part, on the search query, the one or more datasources for the content to display on the electronic device.

It should be appreciated that all combinations of the foregoing conceptsand additional concepts discussed in greater detail below (provided thatsuch concepts are not mutually inconsistent) are contemplated as beingpart of the inventive subject matter disclosed herein.

BRIEF DESCRIPTION OF DRAWINGS

The accompanying drawings are not intended to be drawn to scale. In thedrawings, each identical or nearly identical component that isillustrated in various figures is represented by a like numeral. Forpurposes of clarity, not every component may be labeled in everydrawing. In the drawings:

FIG. 1 is an exemplary system including components of some embodimentsof the invention that relate to a search interface for entertainmentsystems;

FIG. 2 is a process for presenting results of a query for content on auser interface in accordance with some embodiments of the invention;

FIG. 3 is a schematic of a portion of a user interface for displayingresults of a query for content in accordance with some embodiments ofthe invention;

FIG. 4 is a schematic of a portion of a user interface for displayingblended results of a query for content in accordance with someembodiments of the invention;

FIG. 5 is a schematic of portion of a user interface displaying voicetags a user may interact with using input in accordance with someembodiments of the invention;

FIG. 6 is an exemplary process for monitoring for input using alistening mode in accordance with some embodiments of the invention;

FIG. 7 is an exemplary computer system that may be used to implementsome embodiments of the invention.

DETAILED DESCRIPTION

The inventors have recognized and appreciated that searching for contentto view on an electronic device that includes a tuner for displayingscheduled programming content may be improved. Electronic program guides(EPGs) of the type discussed above are frequently used to search for andselect scheduled programming content to view on a tunable electronicdevice, and are configured using a grid-like display formatcorresponding to the times when the scheduled programming content isavailable for viewing. The grid format of an EPG display is designed toreceive input from a remote control device using a five-way navigationcommand system to move a cursor to different entries in the grid. Theinventors have recognized that navigation using conventional EPGdisplays is cumbersome. To navigate through entries in a conventionalgrid-like EPG display using a five-way navigation command system, a usermay be required to provide a series of navigation commands (e.g.,“down-down-down-right-select”), which does not result in an efficient orintuitive experience for the user to select a particular program.

The inventors have recognized that the display of conventional EPGsearch systems is a “visual-first” user interface in which the mainfocus of the interface is to display the scheduled programming contentin visually consistent boxes. The inventors have appreciated that othertechniques for searching for content are possible that do not require arigid visual presentation of scheduled programming content because theuser is not restricted to navigating displayed entries using a five-waynavigation command system. To this end, some embodiments of theinvention are directed to methods and apparatus for an improved visualsearch interface. In particular, in some embodiments of the invention,the visual user interface is designed to encourage “natural-languagefirst” input such that the interface is configured to encourage users tospeak or otherwise provide input to the search system in a natural way.

Some embodiments encourage the use of voice input as a primary inputmodality, with visual aspects of the user interface being complimentaryto voice input. However, it should be appreciated that any input thatcan be spoken can alternatively be provided via another type of inputmodality (e.g., text entry in a keyboard). Thus, while illustratedembodiments described below describe the use of voice as the inputmodality, other modalities can be used to allow the user to provide thesame types of inputs described in the illustrated embodiments below asbeing provided by voice.

An exemplary system 100 for use in accordance with some embodiments ofthe invention is illustrated in FIG. 1. System 100 includes electronicdevice 102, which may be a television, a computer, a portable electronicdevice such as a smartphone, or any other tunable electronic deviceconfigured to receive and display scheduled programming content.Electronic device 102 may be configured to receive input from a user tosearch for and select content to view on the electronic device, whereinthe input is received using one or more input modalities. In someembodiments, electronic device 102 includes a voice input interface 104,such as a microphone and one or more other input interfaces 106configured to receive the input. Other input interface(s) 106 mayinclude, but are not limited to, a keyboard interface (e.g., a QWERTYkeyboard), a mouse interface, a remote control interface, or any othersuitable interface that enables a user to search for content to view onelectronic device 102.

Voice input received via voice input interface 104 may be sent toautomatic speech recognition (ASR) engine 108 for speech recognition torecognize the content of the received voice input. Although ASR engine108 is illustrated in FIG. 1 as being included as a portion ofelectronic device 102, ASR engine 108 may alternatively be locatedremotely from electronic device 102 and may be in communication withelectronic device 102 using any suitable communication mediums (e.g.,one or more networks). In some embodiments, electronic device 102 may beassociated with one or more local ASR engines 108 and one or moreremotely located ASR engines, whereby at least some received voice inputis processed by the one or more local ASR engine(s) and at least somereceived voice input is processed by the one or more remotely-locatedASR engines. Examples of such distributed ASR systems are known by thoseof skill in the art. Voice input sent to the one or more remote ASRengine(s) for recognition using one or more communication medium(s)(e.g., one or more networks) connecting the electronic device 102 andthe ASR engine(s) may be returned to the electronic device 102 from theremotely-located ASR engine(s) using the same or different communicationmedium(s).

In some embodiments, ASR engine 108 may be in communication with one ormore voice command data sources 110 storing one or more voice commands.ASR engine 108 may match received voice input to the one or more voicecommands stored in one or more voice command data sources 110 and returnone or more matching voice commands to one or more processors 114programmed to execute at least one action corresponding to the one ormore matching voice commands. In some embodiments, electronic device 102may be configured to interpret voice input as a voice command inresponse to activation of an input signal (e.g., the user pressing a keyon a remote control or a keyboard) or in response to receiving voiceinput corresponding to a “wake-up” word that when received indicatesthat the voice input following the input signal should be interpreted asa voice command. Alternatively, voice input may be interpreted as acommand without command initiation via an input signal (e.g., a keypress or a wake-up word), as embodiments of the invention are notlimited in this respect.

The set of voice commands stored by the one or more voice command datasources 110 may include any suitable commands for searching for andselecting content to view on the electronic device 102. In someembodiments, the set of voice commands may include commands to controlfunctions of the electronic device 102 itself, examples of which includecommands frequently found on a conventional remote control device, suchas “mute,” “power on,” and “volume.” An illustrative set of electronicdevice commands for controlling an electronic device 102 is shown belowin Table 1, but it should be appreciated that these commands areprovided merely as examples and that embodiments described herein arenot limited to using these specific commands.

TABLE 1 Illustrative Electronic Device Commands Voice Command Example(s)Description Dragon ‘Dragon’ Wake-up-word will start speech recording orwhen device is on standby, will start device Mute (on/off), mute, ‘Muteon,’ ‘Unmute’ Mutes/unmutes volume unmute Shutdown, standby, ‘Shutdown,’‘Power off,’ Sets device to standby (switch/turn/power) off ‘Turn offmode Volume <num_upto_100>, ‘Set volume to 50,’ Sets the device volumeSet volume to ‘Volume 70’ from 0-100 <num_upto_100> Volume (up/down)‘Volume up’ Set volume up/down Turn it (up/down), louder, ‘Turn it up,’‘Louder’ Set volume up/down softer (Enable/start/disable/stop) ‘Enableread out,’ ‘Read Turn on/off text-to-speech (read out/screen reader),out off,’ ‘Enable screen (TTS) (Read out/screen reader) reader,’ ‘Screenreader on’ (on/off) Exit, close ‘Exit,’ ‘Close’ Exit the currentscreen/window Cancel ‘Cancel’ Cancel a request Help/What can I say‘Help,’ ‘What can I say?’ Show help

The set of voice commands may also include tuner commands used to searchfor and/or select scheduled programming content to display on electronicdevice 102, such as “show <channel name>, “next channel,” and “show<program name>.” An illustrative set of tuner commands is shown below inTable 2, but it should be appreciated that these commands are providedmerely as examples and that embodiments described herein are not limitedto using these specific commands.

TABLE 2 Illustrative Tuner Commands Voice Command Example(s) Descriptionchannel (up/down) ‘channel up’ Switch to next/previous channel inchannel list next channel ‘next channel’ Switch to next channel previouschannel ‘previous channel’ Switch to previous channel [show] channel<number> ‘show channel 5’ Switch to specified channel switch to channel‘switch to channel 5’ Switch to specified channel <number> [show]channel <channel ‘show channel HBO’ Switch to specified channel name>name show <channel name> ‘show HBO’ Switch to specified channel nameswitch to <channel name> ‘switch to HBO’ Switch to specified channelname show listings ‘show listings’ Show electronic program guide showEPG ‘show EPG’ Show electronic program guide show [the] [program] ‘showprogram Show electronic program guide guide’ guide show channels ‘showchannels’ Show channels list show channel list ‘show channel list’ Showchannels list what’s on [<channel ‘what’s on HBO at 6’ List programs onchannel at name>] [at <time>] specified time what’s on channel ‘what’son channel 5’ List programs on channel at <number> [at <time>] specifiedtime what’s on <channel ‘what’s on HBO on List programs on channel atname> <day> [at <time>] Monday,’ ‘what’s on specified time HBO tonightat 9,’ what’s on HBO tomorrow at 6 pm’ what’s on channel ‘what’s onchannel 5 List programs on channel at <number> <day> [at on Mondaymorning’ specified time <time>] show <program name> ‘show Frasier’Switch to channel that is currently playing program or has program inschedule within 30 minutes what am I (looking at/ ‘what am I Showscurrent channel watching), [show] watching,’ ‘show informationinformation information,’ ‘information’ Find/Search ‘find movies withAdvanced searching using <program/genre> Harrison Ford,’ program guideinformation [<actor>] [<channel>][<at ‘search for comedies time>]tonight,’ ‘find news on PBS,’ ‘find action movies’

The set of voice commands may also include application commands forinteracting with one or more client applications on electronic device102 that perform any of numerous functions, including providing accessto numerous services. For example, a user may use an application commandto initiate a voice call session using a client application thatperforms calling (such as Skype™), search for weather information, orperform any of numerous other actions. An illustrative set ofapplication commands is shown below in Table 3.

TABLE 3 Illustrative Application Commands Voice Command Example(s)Description Call [to] <contact name> ‘call to Stefan’ Initiates voicecall to given contact name, contact name taken from contact list[show/open] skype ‘show skype,’ ‘skype’ Open Skype ™ client Answer‘answer’ Answer incoming call Decline ‘decline’ Reject incoming callCancel ‘cancel’ Cancel initiated call Find/search/show/play ‘showMichael Jackson on Start YouTube ™ client and <video> on video sharingYouTube,’ ‘Find ice hockey use <video> part to search service (e.g.,YouTube) goal on YouTube’ [show/open] YouTube ‘show YouTube,’ OpenYouTube ™ client ‘YouTube’ Find/search [for] <video> ‘find Miami Vice’Search videos on on YouTube YouTube ™ (YouTube ™ client already open)Play/show/watch [full ‘play,’ ‘watch full screen’ Select video fromresults screen] list and show it on small screen [or full screen]. If avideo is already playing in small screen, open the full screen playbackPlay/show/watch/select ‘play Rihanna Man Down’ Select a video to playfrom <title> [full screen] results list [open full screen playback]Play/show/watch/select ‘play number 6 full screen’ Select a video toplay from number <item number> results list [open full screen [fullscreen] playback] Page up/previous page, ‘page down,’ ‘previous Switchto the next/previous page down/next page page’ page [go to the] (firstitem/ ‘first item’ Browse to the beginning of beginning) results list[go the the] (last item/end) ‘go to the last item’ Browse to the end ofresults list Back ‘back’ If video playback is on, go back to resultslist. If showing results list, close YouTube ™ client. Find weather in<city> ‘find weather in Seattle’ Update weather information on toolbarSearch [for] weather in ‘search weather in Las Update weatherinformation <city> Vegas,’ Search for weather on toolbar in Stockholm’What’s the weather in ‘what’s the weather in New Update weatherinformation <city> York’ on toolbar Share on [the] Twitter ‘share onTwitter’ Open Twitter ™ client update window, start dictationautomatically Send to [the] Twitter ‘send to the Twitter’ Open Twitter ™client update window, start dictation automatically Update [the] Twitter‘update Twitter’ Open Twitter ™ client update window, start dictationautomatically Open/show/go to Twitter ‘open Twitter’ Open Twitter ™client update window Close ‘close’ Cancel Twitter ™ update Dictate‘dictate’ Starts dictation within open Twitter ™ client application Send‘send’ Update Twitter ™ account with text shown on ‘edit box’ Close‘close’ Close Twitter ™ client and cancel update

The illustrative application commands described in Table 3 includecommands to control exemplary client applications including Twitter™,YouTube™, and Skype™. However, it should be appreciated that embodimentsof the invention may include voice commands for any other clientapplication and are not limited in this respect. For example, voicecommands for client applications including, but not limited to,Facebook®, Gmail™, NetFlix®, Hulu™, and MySpace™ may also be included.Some client applications, including many of those listed above, may beweb-based services or applications that can be accessed either via aspecialized application on the electronic device or via a web browser onthe device and embodiments of the invention are not limited in the wayin which a client application is accessed.

The set of voice commands may also include action commands, each forperforming an action related to one or more items in a search resultslist. An illustrative list of action commands is described below inTable 4.

TABLE 4 Illustrative Action Commands Voice Command Example(s)Description Select <item name>, ‘Select How I Met Your Show options fora search [Select] number <item Mother,’ Number one’ result. See the nexttable number> for commands in a results options dialog (play/show/watch)<item ‘show Frasier,’ ‘play Change the channel to the name>,(play/show/watch) number two’ one that has the selected <number <itemnumber> program in the program guide (dvr/record) <item name>, ‘recordHow I Met Your Display ‘recording set’ (dvr/record) number <itemMother,’ ‘DVR number notification for the program number> three’ Pageup/previous page, ‘page down,’ ‘previous Switch to the next/previouspage down/next page page’ results page [go to the] (first item/ ‘firstitem’ Browse to the beginning of beginning) the results list [go to the](last item/end) ‘go to the last item’ Browse to the end of the resultslist Watch ‘watch’ Change the channel and starts playing the selectedprogram DVR ‘DVR’ Display ‘recording set’ notification’ Cancel ‘cancel’Cancel a selection

In some embodiments, the set of voice commands may also include EPGcommands for interacting with an EPG display. Rather than restrictingthe user's navigation through EPG entries using a conventional five-waynavigation command system used with remote control devices, the set ofEPG commands may provide additional voice functionality to enhance theuser's browsing experience. An illustrative set of EPG commands isdescribed below in Table 5.

TABLE 5 Illustrative EPG Commands Voice Command Example(s) DescriptionSelect [program] <program ‘select How I Met Your Show options for aprogram name> Mother’ (play/show/watch) ‘show Ice Age’ Change thechannel to the <program name> one that has the selected program running.Show options if the program has not yet started (dvr/record) <program‘record How I Met Your Display ‘recording set’ name> Mother’notification for the program (select/play/show/watch) ‘show HBO’ Changeto channel visible <channel name> in EPG [select/play/show/watch] ‘showchannel 11,’ channel Change to channel visible channel [number] <channelnumber 6’ in EPG number> Page up/previous page, ‘previous page,’ ‘pageup,’ Switch to another page in page down/next page, ‘page left,’ ‘pageright’ the EPG view page left, page right Previous channel/step up,‘next channel,’ ‘previous Step up/down in the next channel/step downchannel’ channel list [go to the] (first item/ ‘first item’ Browse tothe beginning of beginning) the channels list [go to the] (lastitem/end) ‘go to the last item’ Browse to the end of the channels list

In some embodiments, electronic device 102 also includes a tuner 112configured to enable electronic device 102 to tune to a particularchannel to display scheduled programming content on electronic device102. For example, tuner 112 may enable the electronic device to receivescheduled programming content from one or more scheduled programmingcontent sources 124 connected to electronic device 102 via network 120.Scheduled programming content sources 124 may source media contentscheduled for these times including, but not limited to, stored content(e.g., television programs, and movies), and live media content.Scheduled programming content sources 124 that store and/or transmitscheduled programming content to an electronic device (e.g., over acommunication medium such as a cable or satellite network) iswell-known. Some embodiments may include a tuner configured to receivescheduled programming content from multiple content sources and/or mayinclude multiple tuners, each of which is configured to receivescheduled programming content from a different content source.

Electronic device 102 may also include network interface 118 configuredto communicate with one or more storage and/or processing devices viaone or more network 120. As discussed above, network interface 118 maybe used to transmit voice input to one or more remote ASR engines andreceive speech recognition results from the one or more ASR engines.Electronic device 102 can employ a single network interface 118, or morethan one network interface 118 to enable the electronic device 102 toconnect to more than one type of network (e.g., to perform differentfunctions).

An exemplary electronic device 102 is a television system. Televisionsystems often include a tuner to enable the television system to displayscheduled programming content received by a set top box that isconnected to the television. A set top box is an example of a tuner 112,which receives scheduled programming content via a network interface 118and decodes the received content to enable the electronic device todisplay the content on a display 122. Scheduled programming content orany other content received via network 120 may be displayed on thedisplay 122 connected to electronic device 102. In some embodiments,display 122 may be integrated as part of electronic device 102 and inother embodiments, display 122 may be connected to electronic device 102via one or more wired or wireless connections. Display 122 can also be asingle display or multiple displays and embodiments of the invention arenot limited in this respect.

In some embodiments, electronic device 102 may also be associated with alocal content data source 116, which may be configured to store one ormore television programs, one or more movies, or any other contentsuitable for playback on the electronic device. For example, in someembodiments, local content data source 116 may be a digital videorecorder (DVR) configured to store recorded scheduled programmingcontent. Local content data source 116 may be configured to storecontent related to one or more local client applications associated withelectronic device 102 including, but not limited to, one or moreapplications that store and/or manage picture files, music files, and/orvideo files.

In accordance with some embodiments, when searching for content to viewand/or playback on electronic device 102, content may be retrieved fromlocal content data source 116 and/or one or more data sources (e.g.,scheduled content data source 124, bundled service content data source124) remotely located from electronic device 102 and connected toelectronic device 102 by network 120. The particular source(s) that aresearched may depend, at least in part, on the search query. When resultsare returned from multiple sources, the search results may be orderedbased, at least in part, on the source of the content corresponding tothe search results. In some embodiments, a user may be able to restricta search for content based on the source of the content and/or the typeof content desired to be included in the search results, as described inmore detail below.

Some embodiments are directed to a voice-controllable visual searchinterface displayed on display 122 and configured to allow the user tosearch for content to view and/or playback using the electronic device102. The user may be able to interact with the search interface tosearch for scheduled programming content, as described above. Scheduledprogramming content includes, but is not limited to, broadcast contentsuch as television and radio programs.

Additionally, some embodiments may enable a user to search for bundledservice content stored, for example, by one or more network-connectedbundled service data sources 124 and/or local content data source 116.Unlike scheduled programming content which may only be available forviewing at particular times (e.g., when the content is scheduled forbroadcast), bundled service content may be available forviewing/playback at any time. Bundled service content may include, butis not limited to, content from a web-based service (e.g., Netflix®),content from a local or remote data source storing media content (e.g.,DVR content, on-demand content from a service provider, etc.), andcontent associated with one or more client applications (e.g., iTunes®)associated with electronic device 102. As described in more detailbelow, searching for content in accordance with some embodiments mayallow a user to search for scheduled programming content, bundledservice content, or both scheduled programming content and bundledservice content in a single search.

An exemplary method for processing a search query in accordance withsome embodiments of the invention is illustrated in FIG. 2. In act 210,electronic device 102 receives a search query to search for content toview and/or playback on electronic device 102. For example, the searchquery may include one or more voice commands, as discussed above. Tointerpret received voice input as one or more voice commands, the voiceinput may be processed by one or more local and/or remote ASR enginesfor recognition. In some embodiments, a determination of whether toprocess voice input via a local and/or remote ASR engine may be madebased, at least in part, on the type of voice input. For example, in oneimplementation, voice input corresponding to fixed-form device commands(e.g., “mute,” “power off,” “volume up”) may be processed by a local ASRengine, whereas commands including free-form input (e.g., ‘Search,’‘Find,’ etc.) may be processed by one or more remotely-located (e.g.,“cloud”) ASR engines. For example, since fixed-form commands may beassociated with a limited grammar, they can be easier to recognize and alocal ASR engine may suffice for voice recognition and be faster thansending the input to a remote ASR engine. However, free-form input maybe more difficult to recognize, so sending the input to more robust ASRengine(s) may be required for acceptable recognition performance. Also,language models associated with remotely ASR engines can be updatedregularly to reflect changes in popular culture, names of movies,actors, books, etc. that might otherwise be difficult for a local ASRengine to recognize. In some embodiments, at least a first portion ofthe voice input may be processed by a local ASR engine and at least asecond portion of the voice input may be processed by a remotely-locatedASR engine, and any combination of local and remote ASR engines may beused to recognize received voice input.

The process then proceeds to act 220, where one or more data sources aresearched based, at least in part, on the recognized voice inputcorresponding to the search query. The one or more data sources may besearched in any order, and any particular data source(s) (including lessthan all of the available data sources) may be searched. The resultsthat are returned from the search may be determined in any suitable way.In some embodiments, a determination of which data sources to search maybe made based, at least in part, on a particular action a user wants toperform. For example, if the user says “listen Bob Seger,” the systemmay determine that the user wants to listen to music, so only a localmusic data source may be searched and not a data source associated withan EPG. Alternatively, if the user says “watch Modern Family,” it may bedetermined that the user wants to watch a television show. Accordingly,a data source associated with an EPG and one or more data sourcesassociated with recorded television content may be searched, but a localmusic data source may not be searched. By selectively searching lessthan all available data sources, some embodiments of the invention mayreturn relevant search results in a more efficient manner by reducing anamount of time to return the search results. However, not allembodiments are limited to searching only a subset of available sourcesas all available sources may be searched for some searches.

In some embodiments, an order in which the data sources are searchedand/or an order in which the search results are presented may bedetermined based, at least in part, on one or more rules associating aparticular command (or determined user intent) with a particular orderfor searching and/or presenting search results. For example, if a usersays “watch Modern Family,” recognition of the voice command “watch” (oran intended action if a specific command is not employed, as discussedbelow) may cause the electronic device to search and return results fromdata source(s) associated with an EPG first, search and return resultsfrom data source(s) associated with local content second, and search andreturn results from data source(s) associated with client applications(e.g., YouTube™) third. It should be appreciated that this particularorder for searching and returning search results associated with a“watch” command is described merely for illustrative purposes and anyother desired order may alternatively be used.

Additionally, some embodiments may not include a fixed command grammar,but rather may determine a user's intent from the received input in someother way, such as determining a user's intent by monitoring forparticular words in free-form input, and performing an action inresponse to determining the user's intent. For example, if a user usesthe “play” command or uses the term “play” in a free-form input, thesystem may recognize that the play command or use of the word “play” maysuggest an intent by the user to access always accessible content,whether locally stored or available on-demand. One or more priorityrules may be used to determine what media content to play. For example,it may first be determined whether the EPG has any media contentcurrently available to be played (e.g., broadcast content, on demandcontent, etc.) that matches the voice input. If it is determined thatthere is not currently available content from the EPG, it may next bedetermined whether any recorded media content (e.g., DVR content)matches the voice input. If more than one piece of recorded mediacontent match the voice input, the one or more priority rules mayspecify that all the matching content be displayed so that the user mayselect among them. Alternatively, in some embodiments, rather thandisplaying a plurality of search results to a user, the electronicdevice may automatically playback a selected one of the matching content(e.g., the oldest unwatched (or partially watched) recorded content beselected and played back on the electronic device). Although theabove-described example relates to playing media content using aparticular set of priority rules, it should be appreciated that theserules are merely illustrative, and that any suitable set of priorityrules may be used for any voice input as embodiments of the inventionare not limited in this respect.

Returning to the process of FIG. 2, after the one or more data sourceshas been searched in act 220, the process proceeds to act 222, where oneor more results are displayed on a user interface associated withelectronic device 102 in response to searching the one or more datasources for content that matches the search query. The search result(s)may be displayed in any suitable way including using a voice-enabledsearch results interface, as described in more detail below. Asdiscussed above, displaying the results can include directly presentinga piece of content that matches user input.

FIG. 3 illustrates a portion of a visual search interface in accordancewith some embodiments of the invention. In particular, FIG. 3 shows anillustrative result screen 300 for displaying search results returnedfrom a user-initiated search for content to view and/or play on anelectronic device. In some embodiments, result screen 300 is configuredto display search results along at least two axes. In one illustrativeembodiment, one axis is in the foreground of the search interface andone or more other axes are in the background of the search interface,but can be brought to the foreground of the search interface in responseto a command (e.g., a voice command). In yet some other embodiments,only the content displayed on the axis in the foreground is fullyfocused, and other axes are partially out of focus to draw the user'sattention to the foreground axis. However, not all embodiments usingforeground and background axes are limited in this respect, as someembodiments can present two or more axes fully in focus.

In some embodiments, first axis for displaying search results may be atime-independent axis 310. Search results may be ordered alongtime-independent axis 310 using any suitable metric not related to atime when the content corresponding to the search results is availablefor viewing and/or playback. For example, in one non-limiting example,the search results may be ordered along the time-independent axis based,at least in part, on relevance to the search query that led to theresult. In some embodiments, content displayed along thetime-independent axis may be limited to content that is available at thecurrent time, while in other embodiments it may include content notcurrently available. For embodiments that order the returned searchresults based on relevance to a search query, relevance may bedetermined in any suitable way using any suitable algorithm (e.g.,including giving higher relevance to content currently available forviewing), as embodiments of the invention are not limited in thisrespect. It should be appreciated that relevance to a search query isonly one way to order results along the time-independent axis, and thatany other suitable metric may be used instead of or in addition torelevance to a search query. For example, the search results may beordered based, at least in part, on type of content, source of content,or any other factor or combination of factors.

In some embodiments, search results may also be organized along a secondaxis that is time-based and is configured to display search resultsavailable for viewing at different times. For example, the foreground ofthe result screen 300 may display search results for content that iscurrently available, whereas content available only at a future time maybe shown in the background 320 as illustrated in FIG. 3.

Although the result screen 300 includes search results displayed on onlytwo axes it should be appreciated that search results may be displayedon any number of axes, as embodiments of the invention are not limitedin this respect. For example, in some embodiments search results forbundled service content that are available at the current time, but mayrequire a subscription or some other fee to be paid prior to viewing thecontent, may be displayed along a separate axis (not shown) to indicatethat the content may be viewed only after an applicable payment has beenpaid.

Result screen 300 may also include description section 330 that includesinformation regarding a currently selected search result. Descriptionsection 330 may also include other information that enables the user tomake an informed selection from the search results displayed on resultscreen 300. For example, description section 330 may include adescription of the content associated with the currently selected searchresult, and this description may change based on a selection of adifferent search result displayed on result screen 300.

In some embodiments, less than all of the search results returned fromthe searching process may be displayed on result screen 300 to minimizecrowding of the display. In some embodiments, a user may interact withone or more voice tags, described in more detail below, to viewadditional search results. Result screen 300 may also include discoveryfield 340 that enables a user to perform an additional search based onone or more of the search results displayed on result screen 300. Forexample, discovery field 340, when selected by a user, may initiate asearch for content similar to content associated with the currentlyselected search result. Similarity may be determined in any suitable wayusing any suitable algorithm, as embodiments of the invention are notlimited in this respect. For example, similarity may be determinedbased, at least in part, on a content source content was retrieved from,one or more content tags associated with a piece of content (e.g.,parental ratings for movies), type of content, or any combination ofthese or other factors.

In some embodiments, result screen 300 may include a toolbar 350including information to facilitate a user interaction with searchscreen 300. For example, toolbar 350 may include one or more icons,text, or other indicators explaining screen-specific or global inputs(e.g., voice commands) that a user may use to interact with resultscreen 300.

Search results, in accordance with some embodiments of the invention,may comprise blended search results that include different types ofcontent. For example, as discussed above, search results may includeresults corresponding to scheduled programming content and bundledservice content. FIG. 4 illustrates an illustrative result screen 400 inwhich the search results displayed on the result screen 400 includeblended search results, i.e., at least two of the search results areassociated with different types of content. The blended search resultsmay include first results returned from one or more scheduledprogramming content data sources and second results returned from one ormore bundled service content data sources. The search results displayedon result screen 400 include search results 410, 412, and 414, which maybe results returned from one or more scheduled programming content datasources and search results 420 and 422, which may be results returnedform one or more bundled service content data sources.

As illustrated in FIG. 4, search results returned from scheduledprogramming content data sources and search results returned frombundled service content data sources may be mixed together and orderedalong a time-independent axis using any suitable metric or combinationof metrics including, but not limited to, relevancy to the search query,type of content, and source of content. As with result screen 300,result screen 400 may include a description portion 430 that includesinformation about one or more of the search results displayed on resultscreen 400.

In some embodiments, search results displayed on result screen 400 maybe ordered along at least two axes including a time-independent axis anda time-based axis. In some embodiments, the search results displayed ina background portion of the search interface may include only scheduledprogramming content and not bundled service content. For example,because some bundled service content may always be available, in someembodiments search results corresponding to such bundled service contentmay always be shown in a foreground portion of the search interface toindicate that it is available for viewing and/or playing immediately. Itshould be appreciated, however, that this is merely one illustrative wayto organize content using two axes and other organizations of contentare also possible.

As discussed above, some bundled service content may only be accessedimmediately upon payment of a fee. For example, a song from an onlinemusic store such as iTunes® may be accessed immediately, but only uponpurchase of the song. In some embodiments, although not shown in FIG. 4,search results that correspond to content that requires payment beforebecoming available for viewing and/or playback on an electronic devicemay not be mixed with other search results, but may appear in adifferent portion of the search results interface.

In some embodiments, a search interface in accordance with someembodiments of the invention may include one or more selection tags thatfacilitate interactions between a user and one or more components of thesearch interface. FIG. 5 illustrates an exemplary result screen 500including a plurality of selection tags. As illustrated in FIG. 5, oneor more of the search results may be associated with a selection tag510, which indicates input a user may provide (e.g., via spoken input, akeyboard or keypad, etc.) to select a particular search result. In theexemplary result screen 500, for embodiments employing a voiceinterface, if the user wanted to select the first search result in thelower left corner, the user may say “select 1.” Alternatively, if theuser wanted to select the search result displayed on the lower rightcorner, the user may say “select 4.”

Result screen 500 may also include other types of selection tags such asone or more icons 520 that enable a user to use a selection command toperform one or more actions related to the content with which the iconis associated. For example, the icons 520 may include, but are notlimited to, icons that indicate to the user that they may viewparticular content, record particular content, or perform some otheraction associated with the particular content associated with the icon.The user may combine an action with identification of a selection tag toperform the action on the selected content. For example, a user may viewthe content associated with the search result in the lower left cornerof FIG. 5 by saying “view 1.”

In some embodiments, that employ a voice interface, voice interactionswith the visual search interface may be categorized into different typesof voice commands depending on when the voice command is active. Forexample, some voice commands may be categorized as screen agnosticcommands, which are independent of the content displayed on anyparticular screen and are always active irrespective of what particularscreen is currently being presented on display. Some non-limitingexamples of screen agnostic commands include, but art not limited to,commands such as volume control, channel control, screen brightness, andmenu accessing commands. In some embodiments, the set of screen agnosticcommands overlap substantially with functionality conventionallycontrolled by a remote control device. Screen agnostic commands may beassociated with one or more labels for selective tags displayed on thesearch interface to alert the user to the presence of these commands, orin some embodiments the user is presumed to know that these alwaysavailable commands and can be invoked so that no selection tags or iconsare displayed. In some embodiments, icons for one or more of the globalcommands may be included in a toolbar displayed on the search interfacescreen and/or a list of global commands may be accessed in response to atrigger event such as asking for help, pressing a hotkey on an inputdevice, or in some other way.

Some voice interactions may be associated with screen-dependent actionsthat enable a user to perform actions only within a particular screen ofthe user interface. For example, in the result screen 500 illustrated inFIG. 5, selection tags 510 may allow a user to select a particularsearch result as described above, and the response to selecting theparticular search result, a description of the content associated withthe selected search result may be updated on the search interface toprovide the user with information that may help the user decide whetherto perform an action (e.g., watch, purchase, record) on the contentassociated with the selected search result.

Other screen-dependent actions may be associated with one or morenavigation functions of the search interface that enable a user tonavigate within a particular result screen, and/or to update the contentof a result screen. For example, the search interface may display avoice-enabled label that allows a user to view additional search resultsnot currently displayed on the search interface, for example, byspeaking “next results” or some other command phrase or free-form inputto update the result screen to include the additional results.

The search interface may be further configured with user interactionfunctionality associated with screen-dependent actions to allow a userto switch between search results presented at different levels of amulti-axis display. For example, in embodiments in which search resultsare displayed along a time-independent axis and a time-based axis, theuser may use voice (or other forms of) input to switch which resultsalong the time-based axis are currently in focus and can be selected.For example, a user may say “later” (or some other word or phrase) toselect content associated with search results displayed in thebackground of the user interface along the time-based axis of thedisplayed search results. This may be useful, for example, to allow theuser to take an action (e.g., record) relating to scheduled programmingcontent that is available at some later time. To perform this action,the user may say “later” (or some other word or phrase), which mayswitch the search results displayed in the foreground and the searchresults displayed in the background to enable the user to select an itemfor which content is available only in the future.

Another category of user interactions may be represented by graphicalicons 520 that enable a user to perform a particular action such asrecording, viewing, or playback of content associated with the searchresult. In some embodiments, graphical icons may also correspond toadditional value-added actions that enable a user to perform other“secondary” functions such as posting to Facebook®, performing an actionon Twitter™, or interacting with another client application service orwebsite.

Although the illustrative examples above discuss three different typesof user interactions, (i.e., screen-agnostic commands, screen-dependentactions, and graphical icon actions) it should be appreciated that anynumber of types of user interactions may be used, as embodiments of theinvention are not limited in this respect.

In some embodiments, that support a voice interface, the presence orabsence of selection tags and/or other icons displayed on a searchinterface may be determined based, at least in part, on whether voiceinteraction has been activated for the search interface. Determiningwhether voice interaction is active for the search interface may beperformed in any suitable way including, for example, determiningwhether a microphone is active, determining whether voice recognitionsoftware is executing on the electronic device, determining whether auser has issued a voice command to display the voice tags on the searchinterface, or other suitable ways.

In some embodiments, the electronic device may receive input whichcauses the electronic device to enter a “listening mode” during whichthe electronic device is expecting further input from the user toperform an action. In contrast, when the electronic device is not inlistening mode, the electronic device may not interpret received input,by default, as representing a user's intent to perform a particularaction, and may be monitoring for input to trigger entry into listeningmode. An illustrative process for an electronic device that includes alistening mode in accordance with some embodiments of the invention isillustrated in FIG. 6. In act 610, it is determined whether a firstinput has been received that will cause the electronic device to enter alistening mode. For example, in embodiments that include a voiceinterface, the first input may correspond to a voice command or someother voice input demonstrating a user's intent to perform an action, asdescribed above. Alternatively, the first input may be any othersuitable input to cause the electronic device to enter listening modeincluding, but not limited to, a press of a particular key on a keyboardor keypad.

If it is determined in act 610 that a first input has not been received,the process continues to monitor for a received first input. Otherwise,if a first input has been received, the process proceeds to act 612,where the electronic device is caused to enter a listening mode inresponse to recognizing the first input. While in listening mode, theprocess proceeds to act 614, where it is determined whether a secondinput has been received. If it is determined that a second input hasbeen received while in listening mode, the process proceeds to act 620where one or more actions corresponding to the first and/or second inputare performed. If it is determined in act 614 that a second input hasnot been received, the process proceeds to act 616 where it isdetermined whether a particular amount of time (e.g., 5 seconds) haselapsed since entering listening mode. If it is determined in act 616that the particular amount of time has not yet elapsed, the processcontinues to monitor for a second input. Otherwise, if it is determinedthat the particular amount of time has elapsed, the process proceeds toact 618, where the electronic device is caused to exit listening mode,and the process returns to act 610 to monitor for a first input. In theabove-described embodiment, the electronic device exits listening modeafter a particular amount of time has passed after entering listeningmode. However, it should be appreciated that in some embodiments,listening mode may alternatively be exited in other ways. For example,some embodiments may enable a user to explicitly exit listening mode byproviding input instructing the electronic device to do so. Thisexplicit input may take any suitable form including, but not limited to,a voice command (or determined user intent), or a key press on akeyboard or keypad.

In some embodiments, when an electronic device is caused to enter into alistening mode, this may be noted in some way on the user interfacedisplayed by the electronic device. For example, upon entering thelistening mode, one or more selection tags and/or icons may appear onthe user interface to inform a user that listening mode has beenentered. It should be appreciated that changes to a user interface toreflect the mode status of the electronic device may be performed in anyway and the example of displaying or hiding selection tags and/or iconsis only one way to indicate the status and other ways are also possible.

In some embodiments, bundled service content search results may berepresented hierarchically. For example, if a particular bundled serviceincludes one or more pieces of content that match a search query, theymay initially be represented by including an identifier for the bundleservice in the search results, but not the corresponding pieces itcontent themselves, and then selection of the bundled service from amongthe search results may cause the corresponding pieces of content to beshown on the user interface. For example, an application associated witha bundled service content search result may be illustrated as an imageor icon for the application, which is recognized by a user asrepresenting that application. For example, the bundled service searchresult may correspond to a movie streaming service such as, Netflix®(e.g., illustrated by a Netflix® icon), and in response to selecting themovie streaming service by, for example, saying “select 2,” whichselects the second search result (e.g., the Netflix® search result),search results within the Netflix® application may be displayed.

In an illustrative example, a user may search for content correspondingto “Yankees,” and search results returned in response to this search mayinclude scheduled programming content for New York Yankees baseballgames, bundled service content from a movie streaming service for moviesrelated to the New York Yankees, music content related to the band “DamnYankees,” and electronic book content for the electronic book “AConnecticut Yankee in King Arthur's Court” by Mark Twain. Rather thanshowing all movies the bundled service includes related to the Yankees,the search results may initially show an image for a movie streamingservice which includes multiple movies related to the search term“Yankees.” Upon selecting the image for the movie streaming serviceusing, for example, a selection voice tag associated with the image, oneor more movies available from that streaming service and correspondingto the search term “Yankees” may be displayed in the search results.Hierarchically-presented search results may have any number ofhierarchical levels, as embodiments of the invention are not limited inthis respect.

Another illustrative example of content that can be representedhierarchically is songs in a music library. For example, a user may wantto play a song by Metallica, but may not remember the name of the song.To search for the song, the user may initiate a search for “Metallica,”and the search results that are returned may include multiple albums forMetallica stored locally on a local data source associated withelectronic device and/or one or more network connected music datasources (e.g., databases) that include music from Metallica. In someembodiments, the search results may be presented as a series of imagesfor album covers for the different Metallica albums and the user may beprompted to select one of the albums from the search results (e.g., byusing selection voice tags associated with each album image). Uponselection of one of the albums, the selected album may be expanded toreveal search results for one or more of the songs associated withalbum, and the user may select one of the songs on the album forplayback. Accordingly, in this respect, search results may be presentedin a hierarchical manner such that sequential selections of searchresults may allow the user to navigate through the search results toidentify the content the user wants to playback on the electronicdevice.

In some embodiments, voice tags may be employed that instruct the userhow to interact with different components of the user interface.Content-neutral voice tags are labels that are independent of thecontent that the voice tag identifies. An example of a content-neutralvoice tag is the selection voice tags (1, 2, 3, 4) illustrated in FIG.5, which allow the user to select one of the search results withouthaving to speak the name of the content identifying the search result.Thus, content-neutral voice tags do not identify the content itself withwhich they are associated, but merely identify a slot or position of thesearch result to which the content is assigned. By using content-neutralvoice tags, the user is provided with a set of voice tags thatfacilitates a consistent user experience when interacting with thevisual search interface. Additionally, using content-neutral voice tagsallows the user to use less speech to invoke commands that would berequired if the voice tags were created based, at least in part, on thecontent the tags identified. Use of content-neutral voice tags alsoallow the use of a fixed grammar (e.g., numbers, letters) that canresult in more accurate ASR for content that may have unique names, etc.

In some embodiments, the user may be able to provide input (e.g., viavoice) that results in the activation of more than one type of commandor interaction. For example, a user may say, “watch 1.” In response, twointeractions take place: (1) the first item in the search results may beselected and (2) the selected item may be played. In this way a singleinput may cause multiple commands or interactions to be executed withoutthe user having to issue separate commands. Such a system enables theuser to use natural input (e.g., speech) to control the electronicdevice.

Searches may be performed for any type of content has described above,including searches for video clips on YouTube™, Hulu™, or any othervideo-sharing website or web service. Additionally, the user may searchfor music content, as described above, in one music libraries storedlocally or accessible via a network (e.g., the Internet). The user mayhave the ability to restrict a search to a particular type of contentsuch as music, videos, or scheduled programming content, such that thesearch results only include a particular type of content for which theuser desires to search. To this end, the search interface may beassociated with advanced searching capabilities that may be configuredusing voice input and/or other input modalities.

In some embodiments, a piece of content displayed in the search resultsmay include multiple tags (e.g., voice tags), with one tag identifyingthe content, and another tag indicating an action to perform with thecontent (e.g., watch, record, or purchase the content). The number oftags associated with search results for a search interface is not alimitation of embodiments of the invention.

An illustrative implementation of a computer system 700 that may be usedin connection with any of the embodiments of the invention describedherein is shown in FIG. 7. The computer system 700 may include one ormore processors 710 and one or more computer-readable non-transitorystorage media (e.g., memory 720 and one or more non-volatile storagemedia 730). The processor 710 may control writing data to and readingdata from the memory 720 and the non-volatile storage device 730 in anysuitable manner, as the aspects of the present invention describedherein are not limited in this respect. To perform any of thefunctionality described herein, the processor 710 may execute one ormore instructions stored in one or more computer-readable storage media(e.g., the memory 720), which may serve as non-transitorycomputer-readable storage media storing instructions for execution bythe processor 710.

The above-described embodiments of the present invention can beimplemented in any of numerous ways. For example, the embodiments may beimplemented using hardware, software or a combination thereof. Whenimplemented in software, the software code can be executed on anysuitable processor or collection of processors, whether provided in asingle computer or distributed among multiple computers. It should beappreciated that any component or collection of components that performthe functions described above can be generically considered as one ormore controllers that control the above-discussed functions. The one ormore controllers can be implemented in numerous ways, such as withdedicated hardware, or with general purpose hardware (e.g., one or moreprocessors) that is programmed using microcode or software to performthe functions recited above.

In this respect, it should be appreciated that one implementation of theembodiments of the present invention comprises at least onenon-transitory computer-readable storage medium (e.g., a computermemory, a floppy disk, a compact disk, a tape, etc.) encoded with acomputer program (i.e., a plurality of instructions), which, whenexecuted on a processor, performs the above-discussed functions of theembodiments of the present invention. The computer-readable storagemedium can be transportable such that the program stored thereon can beloaded onto any computer resource to implement the aspects of thepresent invention discussed herein. In addition, it should beappreciated that the reference to a computer program which, whenexecuted, performs the above-discussed functions, is not limited to anapplication program running on a host computer. Rather, the termcomputer program is used herein in a generic sense to reference any typeof computer code (e.g., software or microcode) that can be employed toprogram a processor to implement the above-discussed aspects of thepresent invention.

Various aspects of the present invention may be used alone, incombination, or in a variety of arrangements not specifically discussedin the embodiments described in the foregoing and are therefore notlimited in their application to the details and arrangement ofcomponents set forth in the foregoing description or illustrated in thedrawings. For example, aspects described in one embodiment may becombined in any manner with aspects described in other embodiments.

Also, embodiments of the invention may be implemented as one or moremethods, of which an example has been provided. The acts performed aspart of the method(s) may be ordered in any suitable way. Accordingly,embodiments may be constructed in which acts are performed in an orderdifferent than illustrated, which may include performing some actssimultaneously, even though shown as sequential acts in illustrativeembodiments.

Use of ordinal terms such as “first,” “second,” “third,” etc., in theclaims to modify a claim element does not by itself connote anypriority, precedence, or order of one claim element over another or thetemporal order in which acts of a method are performed. Such terms areused merely as labels to distinguish one claim element having a certainname from another element having a same name (but for use of the ordinalterm).

The phraseology and terminology used herein is for the purpose ofdescription and should not be regarded as limiting. The use of“including,” “comprising,” “having,” “containing”, “involving”, andvariations thereof, is meant to encompass the items listed thereafterand additional items.

Having described several embodiments of the invention in detail, variousmodifications and improvements will readily occur to those skilled inthe art. Such modifications and improvements are intended to be withinthe spirit and scope of the invention. Accordingly, the foregoingdescription is by way of example only, and is not intended as limiting.The invention is limited only as defined by the following claims and theequivalents thereto.

What is claimed is:
 1. A method of searching for content to displayand/or playback on a digitally-tunable electronic device configured todisplay scheduled programming content, the method comprising: receivinga search query from a user, wherein the search query comprises a searchfor the content to display and/or playback on the electronic device,wherein the search query comprises voice input; determining, based onthe search query, an action the user wants to perform, wherein theaction is related to the display and/or playback of content specified inthe search query; determining from among a plurality of data sources, atleast two data sources to search based, at least in part, on the actionthe user wants to perform; and searching based, at least in part, on thesearch query, the at least two data sources for the content to displayand/or playback on the electronic device.
 2. (canceled)
 3. The method ofclaim 1, wherein determining the action the user wants to performcomprises determining that the user wants to listen to media content,and wherein determining at least two data sources to search comprisesdetermining a music data source as at least one of the at least two datasources.
 4. The method of claim 1, wherein determining the action theuser wants to perform comprises determining that the user wants to watchmedia content, and wherein determining at least two data sources tosearch comprises determining at least one scheduled programming contentsource as at least one of the at least two data sources.
 5. The methodof claim 1, further comprising: storing one or more rules associating aparticular type of input with a particular order for searching the atleast two data sources; and wherein searching the at least two datasources comprises searching the at least two data sources in accordancewith the one or more rules.
 6. The method of claim 1, wherein searchingthe at least two data sources comprises searching all available datasources.
 7. The method of claim 1, further comprising: receiving searchresults from the at least two data sources; and presenting the searchresults on a user interface.
 8. A computer-readable storage mediumencoded with a plurality of instructions that, when executed by at leastone computer, perform a method of searching for content to displayand/or playback on a digitally-tunable electronic device configured todisplay scheduled programming content, the method comprising: receivinga search query from a user, wherein the search query comprises a searchfor the content to display and/or playback on the electronic device,wherein the search query comprises voice input; determining, based onthe search query, an action the user wants to perform, wherein theaction is related to the display and/or playback of content specified inthe search query; determining from among a plurality of data sources, atleast two data sources to search based, at least in part, on the actionthe user wants to perform; and searching based, at least in part, on thesearch query, the at least two data sources for the content to displayand/or playback on the electronic device.
 9. (canceled)
 10. Thecomputer-readable storage medium of claim 8, wherein determining theaction the user wants to perform comprises determining that the userwants to listen to media content, and wherein determining at least twodata sources to search comprises determining a music data source as atleast one of the at least two data sources.
 11. The computer-readablestorage medium of claim 8, wherein determining the action the user wantsto perform comprises determining that the user wants to watch mediacontent, and wherein determining at least two data sources to searchcomprises determining at least one scheduled programming content sourceas at least one of the at least two data sources.
 12. Thecomputer-readable storage medium of claim 8, wherein the method furthercomprises: storing one or more rules associating a particular type ofinput with a particular order for searching the at least two datasources; and wherein searching the at least two data sources comprisessearching the at least two data sources in accordance with the one ormore rules.
 13. The computer-readable storage medium of claim 8, whereinsearching the at least two data sources comprises searching allavailable data sources.
 14. The computer-readable storage medium ofclaim 8, wherein the method further comprises: receiving search resultsfrom the at least two data sources; and presenting the search results ona user interface.
 15. A digitally-tunable electronic device configuredto display scheduled programming content, the electronic devicecomprising: at least one processor programmed to: receive a search queryfrom a user, wherein the search query comprises a search for content todisplay and/or playback on the electronic device, wherein the searchquery comprises voice input; determine, based on the search query, anaction the user wants to perform, wherein the action is related to thedisplay and/or playback of content specified in the search query;determine from among a plurality of data sources, at least two datasources to search based, at least in part, on the action the user wantsto perform; and search based, at least in part, on the search query, theat least two data sources for the content to display and/or playback onthe electronic device.
 16. (canceled)
 17. The digitally-tunableelectronic device of claim 15, wherein determining the action the userwants to perform comprises determining that the user wants to listen tomedia content, and wherein determining at least two data sources tosearch comprises determining a music data source as at least one of theat least two data sources.
 18. The digitally-tunable electronic deviceof claim 15, wherein determining the action the user wants to performcomprises determining that the user wants to watch media content, andwherein determining at least two data sources to search comprisesdetermining at least one scheduled programming content source as atleast one of the at least two data sources.
 19. The digitally-tunableelectronic device of claim 15, wherein at least one processor is furtherprogrammed to: store one or more rules associating a particular type ofinput with a particular order for searching the at least two datasources; and wherein searching the at least two data sources comprisessearching the at least two data sources in accordance with the one ormore rules.
 20. The digitally-tunable electronic device of claim 15,wherein searching the at least two data sources comprises searching allavailable data sources.
 21. The method of claim 1, wherein determiningat least two data sources to search comprises determining a first datasource associated with first content and a second data source associatedwith second content as two of the at least two data sources, wherein thefirst content and the second content are different types of content. 22.The computer-readable storage medium of claim 8, wherein determining atleast two data sources to search comprises determining a first datasource associated with first content and a second data source associatedwith second content as two of the at least two data sources, wherein thefirst content and the second content are different types of content. 23.The digitally-tunable electronic device of claim 15, wherein determiningat least two data sources to search comprises determining a first datasource associated with first content and a second data source associatedwith second content as two of the at least two data sources, wherein thefirst content and the second content are different types of content.